package cn.hy.机考.part02;

import java.util.LinkedList;
import java.util.Scanner;

/**
 * @author hy
 * <p>
 * 十二、身高体重排序
 * 按照身高由低到高排列，对身高相同的人，按体重由轻到重排列;对于身高体重 都相同的人，维持原有的编号顺序关系。
 * 请输出排列后的学生编号。 第一个序列中的数值代表身高，第二个序列中的数值代表体重。
 * 输出描述:排列结果，每个数值都是原始序列中的学生编号，编号从 1 开始
 * <p>
 * 4
 * 100 100 120 130
 * 40 30 60 50
 * 输出:2 1 3 4
 * 3
 * 90 110 90
 * 45 60 45
 * 输出:1 3 2
 */
public class Demo12 {
    static class Student {
        int id;
        int h;
        int w;

        public Student(int id, int h, int w) {
            this.id = id;
            this.h = h;
            this.w = w;
        }
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int num = Integer.parseInt(sc.nextLine());
            String[] h = sc.nextLine().split("\\s+");
            String[] w = sc.nextLine().split("\\s+");

            //构造一个储存对象的链表，然后排序
            LinkedList<Student> list = new LinkedList<>();
            for (int i = 0; i < num; i++) {
                Student stu = new Student(i + 1, Integer.parseInt(h[i]),
                        Integer.parseInt(w[i]));
                list.add(stu);
            }

            // 排序
            list.sort((o1, o2) -> o1.h == o2.h ? (o1.w - o2.w) : o1.h - o2.h);
            StringBuilder sb = new StringBuilder();
            list.forEach(x -> sb.append(x.id).append(" "));
            System.out.println(sb.substring(0, sb.length() - 1));
        }
    }
}
